Inserting Safe Memory Reuse Commands into ML-Like Programs
نویسندگان
چکیده
We present a static analysis that estimates reusable memory cells and a source-level transformation that adds explicit memory-reuse commands into the program text. For benchmark ML programs, our analysis and transformation achieves the memory reuse ratio from 5.2% to 91.3%. The small-ratio cases are for programs that have too prevalent sharings among memory cells. For other cases, our experimental results are encouraging in terms of accuracy and cost. Major features of our analysis are: (1) poly-variant analysis of functions by parameterization for the argument heap cells; (2) use of multiset formulas in expressing the sharings and partitionings of heap cells; (3) deallocations conditioned by dynamic flags that are passed as extra arguments to functions; (4) individual heap cell as the granularity of explicit memory-free. Our analysis and transformation is fully automatic. [ To be presented at International Static Analysis Symposium 2003. ]
منابع مشابه
Experiments on the Effectiveness of an Automatic Insertion of Safe Memory Reuses into ML-like Programs
We present extensive experimental results on our static analysis and source-level transformation [12, 11] that adds explicit memory-reuse commands into ML program text. Our analysis and transformation cost is negligible (1,582 to 29,000 lines per seconds) enough to be used in daily programming. The payoff is the reduction of memory peaks and the total garbage collection time. The transformed pr...
متن کاملStatic insertion of safe and effective memory reuse commands into ML-like programs
We present a static analysis that estimates reusable memory cells and a source-level transformation that adds explicit memory-reuse commands into the program text. For benchmark ML programs, our analysis and transformation system achieves the memory reuse ratio from 5.2% to 91.3% and reduces the memory peak from 0.0% to 71.9%. The small-ratio cases are for programs that have a number of data st...
متن کاملImproving Cache Performance using Victim Tag Stores
Main memory latency has been a major bottleneck for system performance. With increasing memory bandwidth demand due to multiple on-chip cores, effective cache utilization is important. In a system with limited cache space, we would ideally like to prevent an incoming block with low reuse from evicting another block with high reuse. This requires predicting the reuse behavior of the incoming blo...
متن کاملConcurrent Separation Logic with Weak Updates
Concurrent Separation Logic (CSL) provides a simple but powerful technique for reasoning about shared-memory concurrent programs. Unfortunately, CSL and separation logic can only support “strong updates,” where mutation to a memory location is safe only if there is a strong memory separation. This severely limits the applicability of CSL since most statically typed languages (e.g., ML, Java, C#...
متن کاملCapability-Based Type Systems for Concurrency Control
Castegren, E. 2018. Capability-Based Type Systems for Concurrency Control. Digital Comprehensive Summaries of Uppsala Dissertations from the Faculty of Science and Technology 1611. 106 pp. Uppsala: Acta Universitatis Upsaliensis. ISBN 978-91-513-0187-7. Since the early 2000s, in order to keep up with the performance predictions of Moore's law, hardware vendors have had to turn to multi-core com...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002